package vista;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import controlador.ControladorProducto;
import modelo.DetalleProducto;
import modelo.Sentencias;

public class VistaProducto extends JFrame {
	private static final long serialVersionUID = 1L;
	public JTextField txtCodProducto,txtDescripcion,txtPrecio,txtFechaReg,txtCantidad;
	public JComboBox jcbIngredientes,jcbCategorias;
	public JLabel lblTitulo,lblCantidad,lbltitList,lblCodProducto,lblCodCategoria,lblDescripcion,lblPrecio;
	public JLabel lblFechaReg,lblIngrediente;
	public JButton btnRegistrar,btnBuscar,btnLimpiar,btnSalir,btnAgregar,btnModificar,btnRemover;
	private JPanel pnNorte,pnBotones,p1,pnLista1,pnLista2;
	public JTable tablaIngredientes;
	public Sentencias MyConex;
	private Vector<String> ingredientes;
    private Vector<String> categorias;
	DetalleProducto d;
	public Vector<DetalleProducto> detalles;
	public DefaultTableModel tablaModel;
	public JScrollPane listaScroolPane;
	Vector<String> nombresColumna=new Vector<String>();
	{
	nombresColumna.add("Producto");
	nombresColumna.add("Ingrediente");
	nombresColumna.add("Cantidad");
	}
	// Referencia a controlador
	ControladorProducto ctrlPro;
	
	//Constructor de la Clase
	public VistaProducto() {
		detalles=new Vector<DetalleProducto>();
	    tablaModel=new DefaultTableModel(ControladorProducto.detalles,nombresColumna);
		MyConex = new Sentencias();
		ingredientes=MyConex.cargarIngredientes();
		categorias=MyConex.cargarCategorias();
		setTitle(".-.Comida Rapida.-.");
		
		txtCodProducto = new JTextField(10);
		txtDescripcion = new JTextField(10);
		txtPrecio = new JTextField(10);
		txtFechaReg = new JTextField(10);
		txtCantidad = new JTextField(3);
		txtPrecio.setText("0");
		txtPrecio.setEditable(false);
		tablaIngredientes=new JTable(tablaModel);
		tablaIngredientes.setPreferredScrollableViewportSize(new Dimension(250,120));
		listaScroolPane=new JScrollPane(tablaIngredientes);
	
		lblTitulo = new JLabel(".-. Datos del producto .-.");
		lblCodProducto = new JLabel("Codigo de producto:");
		lblCodCategoria = new JLabel("Categoria:                  ");
		lblDescripcion = new JLabel("Descripcion:              ");
		lblPrecio = new JLabel("Precio:                       ");
		lblCantidad = new JLabel("Cantidad:");
		lbltitList = new JLabel("Lista de Ingredientes a usar");
		lblFechaReg = new JLabel("Fecha Registro:         ");
		lblIngrediente = new JLabel("Ingrediente:            ");
		btnRegistrar = new JButton("Registrar ");
		btnModificar = new JButton("Modificar ");
		btnAgregar=new JButton("Agregar");
		btnRemover=new JButton("Remover");
		btnLimpiar = new JButton(" Limpiar");
		btnBuscar = new JButton("Buscar");
		btnSalir = new JButton("    Salir   ");
		btnBuscar.setIcon(Tools.cargarIcono("iconos/buscar.gif",20,20));
		btnModificar.setIcon(Tools.cargarIcono("iconos/modificar.gif",20,20));
		btnRegistrar.setIcon(Tools.cargarIcono("iconos/incluir.gif",20,20));
		btnLimpiar.setIcon(Tools.cargarIcono("iconos/limpiar.gif",20,20));
		btnSalir.setIcon(Tools.cargarIcono("iconos/salir.gif",20,20));
		jcbIngredientes = new JComboBox(ingredientes);
		jcbCategorias = new JComboBox(categorias);
		DateFormat formato = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("es", "VE"));
		Date fecha = new Date();
		txtFechaReg.setText(formato.format(fecha));
		inicio();
		pnNorte= new JPanel(new GridLayout(8,4));
		
		p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
		p1.add(lblTitulo);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblCodProducto);
		p1.add(txtCodProducto);
		p1.add(btnBuscar);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblCodCategoria);
		p1.add(jcbCategorias);
		pnNorte.add(p1);
		
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblDescripcion);
		p1.add(txtDescripcion);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblPrecio);
		p1.add(txtPrecio);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblFechaReg);
		p1.add(txtFechaReg);
		pnNorte.add(p1);
	
		p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
		p1.add(lbltitList);
		pnNorte.add(p1);

		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblIngrediente);
		p1.add(jcbIngredientes);
		p1.add(lblCantidad);
		p1.add(txtCantidad);
		pnNorte.add(p1);
		

		pnLista1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		pnLista2= new JPanel(new GridLayout(2,1));
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(listaScroolPane);
		pnLista2.add(btnAgregar);
		pnLista2.add(btnRemover);
		p1.add(pnLista2);
		pnLista1.add(p1);
		
	
pnBotones=new JPanel(new GridLayout(2,2));
		
		p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
		p1.add(btnRegistrar);
		p1.add(btnModificar);
		pnBotones.add(p1);
		
		
		p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
		p1.add(btnLimpiar);
		p1.add(btnSalir);
		pnBotones.add(p1);
		
		add(pnNorte,BorderLayout.NORTH);
		add(pnLista1);
		add(pnBotones,BorderLayout.SOUTH);
		asignarControladora();
		setSize(400,560);
	}
	   private void asignarControladora() {
		
		ctrlPro = new ControladorProducto(this);
		btnLimpiar.addActionListener(ctrlPro);
		btnBuscar.addActionListener(ctrlPro);
		btnSalir.addActionListener(ctrlPro);
		btnRegistrar.addActionListener(ctrlPro);
		btnAgregar.addActionListener(ctrlPro);
		btnRemover.addActionListener(ctrlPro);
		btnModificar.addActionListener(ctrlPro);
	}
	   public void limpiarCampos(){
			txtCantidad.setText("");
			txtCodProducto.setText("");
			txtDescripcion.setText("");
			txtPrecio.setText("0");
			txtCodProducto.requestFocus(true);
			desActivar();
				}
	
		public void desActivar(){
			btnRegistrar.setEnabled(false);
			txtCantidad.setEditable(false);
			txtDescripcion.setEditable(false);
			txtFechaReg.setEditable(false);
			btnLimpiar.setEnabled(false);
			
			txtCodProducto.setEditable(true);		
		}
		public void inicio(){
			btnRegistrar.setEnabled(false);
			jcbIngredientes.setEnabled(false);
			jcbCategorias.setEnabled(false);
			btnAgregar.setEnabled(false);
			btnRemover.setEnabled(false);
			btnLimpiar.setEnabled(false);
			btnModificar.setEnabled(false);
		    limpiarCampos();
			
		}

}
